\section{Besoins Fonctionnels}
\paragraph{} 
Les principaux besoins fonctionnels sont les fonctionnalités d'Explorer3D qu'il est nécessaire de porter sous R, du moins autant qu'il sera possible d'en porter. Nous allons lister les différentes fonctionnalités souhaitées et nous les commenterons.

\paragraph{} 
Nous souhaitons pouvoir fournir à l'utilisateur une interface graphique lui permettant d'agir sur les données, offrant diverses possibilités telles que le chargement de données ou la demande de calcul. Il doit aussi avoir la possibilité d'ouvrir une nouvelle fenêtre 3D interactive.

\paragraph{}
 Nous allons donc déterminer si il est possible de créer ces différentes fenêtres, aussi nous chercherons à savoir comment pourrions nous agir depuis cette interface utilisateur sur la ou les fenêtres 3D.

\paragraph{} 
Nous allons maintenant préciser ce que nous attendons des fenêtres 3D.

\paragraph{} 
Nous l'avons évoqué dans les besoins non fonctionnels, nous voulons avoir une fenêtre qui nous permet d'afficher un très grand nombre d'objets, nous ne donnerons pas d'ordre de grandeur pour le moment, car nous en saurons plus après les premiers tests.

\paragraph{}
Nous souhaitons aussi avoir la possibilité de modifier la scène 3D, plus précisément nous souhaitons connaître les possibilités de zoom et de déplacement de la scène dans la fenêtre 3D. Nous nous intéressons aussi à la rotation de la scène, nous aimerions pouvoir faire tourner la scène et ainsi avoir un autre point de vue de la répartition des objets.

\paragraph{}
Comme dans Explorer3D, nous voulons offrir la possibilité de sélectionner certains objets par un clic sur l’objet dans la fenêtre 3D. Il sera donc nécessaire
de pouvoir connaître l’état d’un objet, s’il est sélectionné ou non. Plus qu’un coté algorithmique, nous cherchons ici à savoir comment pourrions nous si
possible implémenter cela avec RGL.

\paragraph{}
Nous souhaiterions aussi avoir la possibilité de changer les propriétés des objets, par exemple la couleur, afin de pouvoir mettre en évidence les objets sélectionné et ce de manière la plus fluide et rapide possible.

\paragraph{}
Nous souhaitons également offrir la possibilité de repositionner les objets dans l'espace et pouvoir afficher dynamiquement ce repositionnement. Nous chercherons ici à afficher une animation et pas seulement à rafraîchir la scène avec la nouvelle position de l'objet déplacé. 

\paragraph{}
Nous aimerions aussi pouvoir rajouter de façon dynamique des objets dans la scène tels que des ellipses ou ses enveloppes connexes, encore une fois sans avoir à rouvrir une nouvelle fenêtre, mais juste en mettant à jour la fenêtre courante.

\paragraph{}
Nous souhaiterions avoir la possibilité de pouvoir faire cohabiter plusieurs fenêtres 3D,  par exemple pour comparer plusieurs représentations des objets.

\paragraph{}
Explorer3D propose aussi un système de loupe, qui en plus d'un zoom optique sur une partie de la scène où se trouve le pointeur de la souris, sélectionne tous les objets présents sous la loupe, ce qui permet par exemple de mettre en évidence la présence d'un groupe d'objets dans une vue (une fenêtre) mais ce même "groupe" serait dispersé dans une autre vue.

\paragraph{}
Un point supplémentaire serait d'avoir la  possibilité de se mettre en écoute sur un port pour réception de commandes de type jeu de données et d'affichage.

\newpage